package cn.leaf.chain;

/**
 *
 * desc: 责任链测试
 * Spring框架中的应用：
 * Interceptor每个拦截器都可以对请求进行预处理、后处理或者直接中断处理流程。如果一个拦截器无法处理该请求，则将请求传递给责任链中的下一个拦截器，直到责任链中的最后一个拦截器
 * Spring Security 处理安全验证请求，由多个filter进行处理，直到责任链中的最后一个处理完毕
 * ---------------------------------------------------------------------------
 * Jdk中的应用：
 * Java I/O流处理：一个输入流被创建时，Java会通过一系列的流处理器对其进行处理
 * ---------------------------------------------------------------------------
 * 最佳实践：Activity框架、Flowable框架
 *
 * @author twinkle-leaf
 * @version v1.0.0
 * slogan: There are no two identical leaves in the world.🍃
 *
 */
public class ChainTest {

    public static void main(String[] args) {

        // 员工处理
        EmpChainHandler empChainHandler = new EmpChainHandler();

        // 经理处理
        ManagerChainHandler managerChainHandler = new ManagerChainHandler();

        // 董事长处理
        BossChainHandler bossChainHandler = new BossChainHandler();

        empChainHandler.setNextChainHandler(managerChainHandler);
        managerChainHandler.setNextChainHandler(bossChainHandler);

        empChainHandler.handler(1);
    }
}
